const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : '0' + n
}

/** 
 * 时间戳转化为年 月 日 时 分 秒 
 * number: 传入时间戳(毫秒)
 * format：返回格式，支持自定义，但参数必须与formateArr里保持一致 
*/
function formatTimeTwo(number, format) {

  var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
  var returnArr = [];

  var date = new Date(number);
  returnArr.push(date.getFullYear());
  returnArr.push(formatNumber(date.getMonth() + 1));
  returnArr.push(formatNumber(date.getDate()));

  returnArr.push(formatNumber(date.getHours()));
  returnArr.push(formatNumber(date.getMinutes()));
  returnArr.push(formatNumber(date.getSeconds()));

  for (var i in returnArr) {
    format = format.replace(formateArr[i], returnArr[i]);
  }
  return format;
}

function eMonth(){
  var m = formatTimeTwo(new Date().getTime(), "M");
  if(m=='01') return "Jan";
  else if(m=='02') return "Feb";
  else if(m=='03') return "Mar";
  else if(m=='04') return "Apr";
  else if(m=='05') return "May";
  else if(m=='06') return "Jun";
  else if(m=='07') return "Jul";
  else if(m=='08') return "Aug";
  else if(m=='09') return "Sept";
  else if(m=='10') return "Oct";
  else if(m=='11') return "Nov";
  else if(m=='12') return "Dec";
  else return "";
}

function nDay(){
  return formatTimeTwo(new Date().getTime(), "D");
}

module.exports = {
  formatTime: formatTime,
  formatTimeTwo: formatTimeTwo,
  eMonth: eMonth,
  nDay: nDay
}
